package utils;

import java.text.MessageFormat;

/**
 * 工具类
 *
 * @author d11yu
 */
public class myUtils {
    /**
     * @param arr 二维数组
     * @param <T>
     */
    public static <T> void print2dArray(T[][] arr) {
        for (T[] row : arr) {
            for (T cell : row) {
                if (cell != null) {
                    System.out.printf("%d\t", cell);
                } else {
                    System.out.printf("%d\t", 0);
                }
            }
            System.out.println();
        }
    }

    /**
     * @param arr 二维数组
     */
    public static void print2dArray(int[][] arr) {
        for (int[] row : arr) {
            for (int cell : row) {
                System.out.printf("%d\t", cell);
            }
            System.out.println();
        }
    }

    /**
     * @param arr 二维数组
     */
    public static String twoDArray2String(int[][] arr) {
        StringBuilder sb = new StringBuilder();
        for (int[] row : arr) {
            for (int cell : row) {
                sb.append(MessageFormat.format("{0}\t", cell));
            }
            sb.delete(sb.length() - 1, sb.length());
            sb.append('\n');
        }
        sb.delete(sb.length() - 1, sb.length());
        return sb.toString();
    }

    /**
     * @param arr 二维数组
     * @param <T>
     */
    public static <T> String twoDArray2String(T[][] arr) {
        StringBuilder sb = new StringBuilder();
        for (T[] row : arr) {
            for (T cell : row) {
                if (cell != null) {
                    sb.append(MessageFormat.format("{0}\t", cell));
                } else {
                    sb.append(MessageFormat.format("{0}\t", 0));
                }
            }
            sb.delete(sb.length() - 1, sb.length());
            sb.append('\n');
        }
        sb.delete(sb.length() - 1, sb.length());
        return sb.toString();
    }
}
